import { system as http, application as applicationHttp } from '@zh/common-utils/http'
export { http }

/**
 * 查询机构权限列表
 * @param {Long} appId  { applicationId: this.appId }
 */
export function queryUnit (appId) {
  return applicationHttp.post('app/sysApplicationUnit/queryUnit', { applicationId: appId })
}
/**
 * 用户ID列表
 * @param {Object} params
 */
export function getUserIds (params) {
  return applicationHttp.post('/app/sysPortalAppOrder/getUserIds', params)
}
/**
 * 保存应用机构权限
 * @param {Long} appId 应用ID
 * @param {Array} checkedKeysUnit 选中的机构
 */
export function saveUnit (roleId, unitUserIds) {
  return http.post('/system/role/batchSave/roleuser', {
    roleId: roleId,
    unitUserIds: unitUserIds
  })
}
/**
 * 通过单位ID获取已授权全部用户列表
 */
export function unitByIdUserlist (roleId) {
  return http.get(`/system/role/getRoleUnitUserList/${roleId}`)
}

/**
 * 获取全部应用列表
 */
export function getInitApps () {
  return http.get(`/system/role/getInitApps`)
}

/**
 * 分页查询
 * @param {Object} params
 */
export function page (params) {
  return http.post('/system/role/page', params)
}
/**
 * 用户分页
 * @param {Object} params
 */
export function userpage (params) {
  return http.post('system/SysUnituser/page', params)
}
/**
 * 修改或保存
 * @param {Object} params
 */
export function saveOrUpdate (data) {
  const url = data.id ? 'system/role/update' : 'system/role/save'
  return http.post(url, data)
}

/**
 * 删除
 * @param {String} id
 */
export function del (id) {
  return http.get('/system/role/delete/' + id)
}

/**
 * 根据角色ID查询角色
 * @param {String} roleId
 */
export function getById (roleId) {
  return http.get('/system/role/getRole/' + roleId)
}

/**
 * 获取排序号
 */
export function getOrderNo () {
  return http.get('/system/role/getOrderNo')
}

/**
 * 通过角色id查询菜单树
 * @param {Object} params
 */
export function getMenuListByRoleId (params) {
  return http.post(`/system/SysMenurole/getMenuListByRoleId/${params}`)
}

/**
* 数据授权保存接口
* @param {Object} params
*/
export function SysMenuroleSave (params) {
  return http.post(`/system/SysMenurole/save`, params)
}

/**
* 数据授权应用到所有接口
* @param {Object} params
*/
export function saveDataAuthTopMenu (params) {
  return http.post(`/system/SysMenurole/saveDataAuthTopMenu`, params)
}

/**
* 根据角色id和菜单查询机构名称
* @param {Object} params
*/
export function getDataAuthUnitListByMenuId (roleId, menuId) {
  return http.post(`/system/SysMenurole/getDataAuthUnitListByMenuId/${roleId}/${menuId}`)
}

/**
* 查询已授权角色人员
* @param {Object} params
*/
export function getRoleUnitUserListPage (params) {
  return http.post(`/system/role/getRoleUnitUserListPage`, params)
}

/**
* 查询未授权角色人员
* @param {Object} params
*/
export function getRoleUnitUserNotInListPage (params) {
  return http.post(`/system/role/getRoleUnitUserNotInListPage`, params, { repeat: true })
}
/**
* 添加授权人员
* @param {Object} params
*/
export function batchSave (params) {
  return http.post(`/system/role/batchSave/roleuser`, params)
}

/**
* 移除授权人员
* @param {Object} params
*/
export function batchRemove (params) {
  return http.post(`/system/role/batchRemove/roleuser`, params)
}

/**
 * 根据code获取角色列表
 * @param {} params
 * @returns
 */
export function getRoleList (params) {
  return http.get(`/system/SysUnituser/getRoleList`, params)
}

/**
 * 获取角色分类列表
 * @param {} params
 * @returns
 */
export function getRoleClassPageList(params) {
  return http.post(`/system/role/class/page`, params)
}
/**
 * 根据新增或者修改角色分类分页列表
 * @param {} params
 * @returns
 */
export function roleClassAddAndModify(params) {
  return http.post(`/system/role/class/addAndModify`, params)
}
/**
 * 根据id删除角色分类状态
 * @param {} params
 * @returns
 */
export function getClassByIdDel(params) {
  return http.get(`/system/role/class/del/` + params.id, params)
}
/**
 * 获取分类状态最大排序号
 * @param {} params
 * @returns
 */
export function getMaxNo(params) {
  return http.get(`/system/role/class/no`, params)
}
/**
 * 获取角色分类列表
 * @param {} params
 * @returns
 */
export function getRoleClassList(params) {
  return http.get(`/system/role/class/list`, params)
}